﻿using System.Windows.Automation;

namespace ProdControls.Interfaces
{
    /// <summary>
    ///   Represents controls that visually expand to display content and collapse to hide content.
    /// </summary>
    public interface IExpandCollapse
    {
        /// <summary>
        ///   Gets the state, expanded or collapsed, of the control.
        /// </summary>
        /// <value> The state of the control. </value>
        ExpandCollapseState ExpandCollapseState { get; }

        /// <summary>
        ///   Displays all child nodes, controls, or content of the AutomationElement.
        /// </summary>
        /// <example>
        ///   this.Expand(this);
        /// </example>
        void Expand();

        /// <summary>
        ///   Hides all descendant nodes, controls, or content of the AutomationElement.
        /// </summary>
        /// <example>
        ///   this.Collapse(this);
        /// </example>
        void Collapse();
    }
}